/*
 * @Author: anxia.ack anchenkai@come-future.com
 * @Date: 2025-04-05 16:24:40
 * @LastEditors: anxia.ack anchenkai@come-future.com
 * @LastEditTime: 2025-04-19 21:23:14
 * @FilePath: /free-learning/src/api/course/type.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

// 定义课程信息接口
export interface CourseInfo {
  id: number; // 主键ID
  title: string; // 课程标题
  description?: string; // 课程描述，可选字段
  consultantId: number; // 咨询师ID
  consultantName: string; // 咨询师姓名
  categoryId: number; // 课程分类ID
  categoryName: string; // 课程分类名称
  coverImage?: string; // 课程封面图URL，可选字段
  content?: string; // 课程介绍，可选字段
  status: CourseStatus; // 课程状态
  startTime?: string; // 开课时间，可选字段
  createTime: Date; // 创建时间
  updateTime: Date; // 更新时间
  isRecommend: number; // 是否推荐
}

// 定义课程状态枚举
export enum CourseStatus {
  PendingReview = 0, // 待审核
  Approved = 1, // 审核通过
  Rejected = 2, // 审核未通过
  Published = 3, // 已发布
  WaitingPublish = 4, // 待发布
}

export interface CourseListVO extends CourseInfo {
  chaptersNum: number; // 章节数量
  favoriteCount: number; // 用户收藏数
  reviewCount: number; // 收到的评论数量
  likeCount: number; // 点赞数量
}

export interface CourseListParams extends PageQuery {
  /**
   * 关键字(用户名/昵称/手机号)
   */
  keywords: string;

  /**
   * 审核状态
   */
  status?: string | number;

  /**
   * 课程分类ID
   */
  categoryId?: number;

  /**
   * 咨询师ID
   */
  consultantId?: number;

  /**
   * 开始时间
   */
  startBeginTime: string;

  /**
   * 结束时间
   */
  startAfterTime: string;
}
